package Project; import java.io.Serializable; import java.util.Collection; import java.util.Comparator; import java.util.Iterator; import java.util.Random; import java.util.TreeMap; import java.util.TreeSet; /*Class which simulates an order processing *it contains proccesing methods of the orders and for stock update */ public class OPDept implements Serializable { private static final long serialVersionUID = 2983402786393661267L; private static int clientNumber = 1; private static int orderNumber = 1; private TreeSet<Order> orders = new TreeSet<Order>(); public OPDept() { orders.add(new Order(0, 0, new Customer(0, "a", ""), new Product("a", 0, 0))); } public Collection getOrders() { return orders; } public Collection processOrder(TreeSet<Product> x, Product y, int q, String cn, String ca) { TreeSet<Product> ret = new TreeSet<Product>(x); Customer c = new Customer(clientNumber, cn, ca); ret.remove(y); int priceB = 0; int price = y.getPrice(); int amount = y.getAmount(); int amountRemaining = amount - q; if (amountRemaining < 0) amountRemaining = 0; priceB = price * (amount - amountRemaining); if (amountRemaining > 0) { y.setAmount(amountRemaining); ret.add(y); } orderNumber = orders.last().getNrOrder(); orderNumber++; Order ord = new Order(orderNumber, priceB, c, new Product(y.getName(), y.getPrice(), amount - amountRemaining)); Interface.message = "> " + " Client " + cn + " address " + ca + " purchased " + y.getName() + " amount " + (amount - amountRemaining) + " total cost " + priceB + "\n"; orders.add(ord); orderNumber++; clientNumber++; return ret; } }